home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 551-575 / apd566 / ascii / input procs i.doc < prev    next >
Text File  |  1994-01-01  |  6KB  |  111 lines

  1.  
  2.           *** I N P U T   P R O C E D U R E S  ( V O L U M E   I ) ***
  3.  
  4.                 Written in 1993 for AMOS Basic by Glenn N Babic
  5.  
  6.  
  7.  
  8. The above named program contains two input devices of my own creation.  I have
  9. editted them for submission to the PD library so they are much easier for other
  10. programmers to implement into their own programs.  I have created other input
  11. devices, but they are not yet suitably versatile for submitting (when they are
  12. they will make up volume II).  The input devices I've submitted here are a
  13. single-line text inputer, a word-wrap window text inputer, and buttons:
  14.  
  15. The Text Inputers
  16. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  17. These procedures allow the user to input text from the keyboard in a neat
  18. fashion.  Both the single-line windows and the more versitile word-wrap windows
  19. allow the cursor to be moved about the text with the cursor keys and the mouse.
  20.  
  21. Text entered into a single-line window may extend past the ends of the text
  22. window.  If you wish to edit text beyond the ends of the window, simply move the
  23. cursor in the appropriate direction and the window will scroll automatically to
  24. reveal hidden text.
  25.  
  26. When entering text into a word-wrap window, long lines will be broken between
  27. words on spaces so the entire text is displayed in an attractive and readable
  28. form.  However, words longer than the character width of the window will be
  29. split within the word.  To edit text hidden above or below the visible window
  30. area, move the cursor in the appropriate direction to reveal it.
  31.  
  32. Note:
  33.  
  34. The text windows in this program can be activated by clicking in them with the
  35. mouse, and deactivated by clicking the mouse outside of the text window  or by
  36. pressing RETURN (Obviously, this means that RETURN characters cannot be dis-
  37. played in the windows.  I, myself, simply type the ® symbol (Alt + R) in place
  38. of it and use a routine that recognises them as marking the end of a paragraph
  39. later in programs that use the inputed text (such as an adventure game) where
  40. the paragraphed, inputed text could be a room description.  My method proves
  41. fine for a utility that sets up string data for such a program, however I
  42. realise for a word processor it would not be appropriate.  Also you cannot type
  43. in TABs.  PS: I have already began planning an input routine that handles RETURN
  44. characters.  Look out for it (hopefully in the form of a text editor) in the
  45. near future!).  If you use these text input procedures, you can change them so
  46. that you don't have to click with the mouse to activate them (see below).
  47.  
  48. Important Technical:
  49.  
  50. The variables used in the calls to the Procedure WRAP_INPUT[S$,X,Y,W,H,M,Z] and
  51. the Procedure LINE_INPUT[S$,X,Y,W,M,Z] are:
  52.    S$  = The text displayed in the window initially
  53.    X,Y = The co-ordinates of the top-left corner of the window
  54.    W   = The width of the window (in characters)
  55.    H   = The heigth of the window (in characters / word-wrap windows only)
  56.    M   = The maximum allowed length of the text input (set to less than W for
  57.          single-line windows if you wish for no scroll)
  58.    Z   = The zone associated with the window (used for mouse detection)
  59.          (by passing a value of -1 for Z when calling these procedures, the text
  60.          will be displayed, but the procedure will be exited immediately so that
  61.          no input is processed - this is useful so the window and any text can
  62.          be displayed initially, and then allowing the user to edit it if he/she
  63.          so wishes.
  64. This program uses several windows, with their corresponding variables stored in
  65. arrays, so that you can see how it is possible to display and edit multiple
  66. windows at once.  If you just wish to edit one window at a time in your own
  67. program, you may wish to erase the initial calls to the procedures (where
  68. Z=True) and the routine which checks for mouse clicks in the windows.
  69.  
  70. Buttons
  71. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  72. When the mouse is moved over a button (while no text window is being editted and
  73. if the button is enabled) the border will be highlighted.  Then if the left
  74. mouse button is clicked, the text in the button will be highlighted and the
  75. button will be activated.  What happens next depends on the type of button:  The
  76. text on an instant flash button will immediately darken again, while a 'switch'
  77. type button will be highlighted if initially dark, or darkened if initially
  78. highlighted.
  79.  
  80. Important Technical:
  81.  
  82. The variables used in the call to the button procedures are:
  83.    I   = The number of the button
  84.    T$  = The text displayed on the button (extra spaces widen button)
  85.    X,Y = The co-ordinates of the centre of the button
  86. The data for the buttons are held in arrays.  Most importantly, BUT_F() is a
  87. flag determining the type of button:
  88.             1 = OFF ('switch')
  89.             2 = ON  ('switch')
  90.             3 = quick flash
  91.           -ve = disabled (absolute value is used when button is enabled)
  92. Calls can be made to different procedures for each button in the Procedure
  93. ACTIVATE_BUTTON[I].
  94.  
  95. Final Important Notes
  96. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  97. I decided on a four colour (grey scaled), hires screen for this program as it
  98. allows for an attractive, light sourced, screen while not consuming too much
  99. memory.  The text cursor I made so it appears the character it is on, including
  100. the background, is highlighted as if by a spotlight.  However you may not like
  101. some, or all, aspects of this display.  You shouldn't find changing them too
  102. difficult.
  103. I have worked hard (mainly on the word-wrap window inputer) trying to find the
  104. best and fastest way of creating such routines.  I have erradicated all the bugs
  105. I have found in this program, however I'm sure some more will pop up!  If so,
  106. and you would like me to fix the problem (as you probably don't understand my
  107. programming) then contact me!
  108.  
  109.                                                                  - Glenn N Babic
  110.                                                                    Reg. #1646
  111.